[INFO] cloning repository https://github.com/mcoffin/vk-playground
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/mcoffin/vk-playground" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmcoffin%2Fvk-playground", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmcoffin%2Fvk-playground'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] f4ce9888705f152a314cbc42fccb45954cd82f2a
[INFO] building mcoffin/vk-playground against master#881c1ac408d93bb7adaa3a51dabab9266e82eee8 for issue-85264
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmcoffin%2Fvk-playground" "/workspace/builds/worker-12/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-12/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/mcoffin/vk-playground on toolchain 881c1ac408d93bb7adaa3a51dabab9266e82eee8
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+881c1ac408d93bb7adaa3a51dabab9266e82eee8" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/mcoffin/vk-playground
[INFO] finished tweaking git repo https://github.com/mcoffin/vk-playground
[INFO] tweaked toml for git repo https://github.com/mcoffin/vk-playground written to /workspace/builds/worker-12/source/Cargo.toml
[INFO] crate git repo https://github.com/mcoffin/vk-playground already has a lockfile, it will not be regenerated
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+881c1ac408d93bb7adaa3a51dabab9266e82eee8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded vk-sys v0.2.7
[INFO] [stderr]   Downloaded shared_library v0.1.7
[INFO] [stderr]   Downloaded ash v0.18.4
[INFO] [stderr]   Downloaded glfw v0.17.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-12/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-12/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:20528e8c29e4536546f0102ce88568b16ea7538393a33fcca951030f7af10457" "/opt/rustwide/cargo-home/bin/cargo" "+881c1ac408d93bb7adaa3a51dabab9266e82eee8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] [stdout] febe96d9cd832e5d4460a1f27547eb91bf32f7ed213dcc29b4aea8f10671058f
[INFO] running `Command { std: "docker" "start" "-a" "febe96d9cd832e5d4460a1f27547eb91bf32f7ed213dcc29b4aea8f10671058f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "febe96d9cd832e5d4460a1f27547eb91bf32f7ed213dcc29b4aea8f10671058f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "febe96d9cd832e5d4460a1f27547eb91bf32f7ed213dcc29b4aea8f10671058f", kill_on_drop: false }`
[INFO] [stdout] febe96d9cd832e5d4460a1f27547eb91bf32f7ed213dcc29b4aea8f10671058f
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-12/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-12/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:20528e8c29e4536546f0102ce88568b16ea7538393a33fcca951030f7af10457" "/opt/rustwide/cargo-home/bin/cargo" "+881c1ac408d93bb7adaa3a51dabab9266e82eee8" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] [stdout] bf4befbe40086a3223c13fea932c29369e33f1311623ddc3325e837de37cd7ab
[INFO] running `Command { std: "docker" "start" "-a" "bf4befbe40086a3223c13fea932c29369e33f1311623ddc3325e837de37cd7ab", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.30
[INFO] [stderr]    Compiling lazy_static v0.2.8
[INFO] [stderr]    Compiling rustc-serialize v0.3.24
[INFO] [stderr]    Compiling void v1.0.2
[INFO] [stderr]    Compiling utf8-ranges v1.0.0
[INFO] [stderr]    Compiling nom v1.2.4
[INFO] [stderr]    Compiling regex-syntax v0.4.1
[INFO] [stderr]    Compiling vk-sys v0.2.7
[INFO] [stderr]    Compiling num-integer v0.1.35
[INFO] [stderr]    Compiling enum_primitive v0.1.1
[INFO] [stderr]    Compiling unreachable v1.0.0
[INFO] [stderr]    Compiling thread_local v0.3.4
[INFO] [stderr]    Compiling num-iter v0.1.34
[INFO] [stderr]    Compiling semver v0.2.3
[INFO] [stderr]    Compiling rand v0.3.16
[INFO] [stderr]    Compiling memchr v1.0.1
[INFO] [stderr]    Compiling shared_library v0.1.7
[INFO] [stderr]    Compiling aho-corasick v0.6.3
[INFO] [stderr]    Compiling ash v0.18.4
[INFO] [stderr]    Compiling regex v0.2.2
[INFO] [stderr]    Compiling num-bigint v0.1.40
[INFO] [stderr]    Compiling num-complex v0.1.40
[INFO] [stderr]    Compiling env_logger v0.4.3
[INFO] [stderr]    Compiling num-rational v0.1.39
[INFO] [stderr]    Compiling num v0.1.40
[INFO] [stderr]    Compiling glfw v0.17.0
[INFO] [stderr]    Compiling vk-playground v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/main.rs:53:20
[INFO] [stdout]    |
[INFO] [stdout] 53 |     let mut file = try!(fs::File::open(filename));
[INFO] [stdout]    |                    ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/main.rs:61:5
[INFO] [stdout]    |
[INFO] [stdout] 61 |     try!(file.read_to_end(&mut buf));
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/main.rs:171:28
[INFO] [stdout]     |
[INFO] [stdout] 171 |         let capabilities = try!(vk_surface.get_physical_device_surface_capabilities_khr(device, *surface));
[INFO] [stdout]     |                            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/main.rs:172:23
[INFO] [stdout]     |
[INFO] [stdout] 172 |         let formats = try!(vk_surface.get_physical_device_surface_formats_khr(device, *surface));
[INFO] [stdout]     |                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/main.rs:173:29
[INFO] [stdout]     |
[INFO] [stdout] 173 |         let present_modes = try!(vk_surface.get_physical_device_surface_present_modes_khr(device, *surface));
[INFO] [stdout]     |                             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]    --> src/main.rs:388:21
[INFO] [stdout]     |
[INFO] [stdout] 388 |                     (properties.device_type == PhysicalDeviceType::DiscreteGpu && features.geometry_shader != 0)
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0759]: `device` has lifetime `'d` but it needs to satisfy a `'static` lifetime requirement
[INFO] [stdout]   --> src/safe_create.rs:63:97
[INFO] [stdout]    |
[INFO] [stdout] 61 |   pub fn create_shader_module_safe<'d, D: DeviceV1_0>(device: &'d D, create_info: &ShaderModuleCreateInfo, allocator: Option<&'d Allocation...
[INFO] [stdout]    |                                                               ----- this data with lifetime `'d`...
[INFO] [stdout] 62 |       let unsafe_shader_module = unsafe { device.create_shader_module(create_info, allocator) };
[INFO] [stdout] 63 |       unsafe_shader_module.map(|unsafe_shader_module| unsafe { VkOwned::new(unsafe_shader_module, move |shader_module| {
[INFO] [stdout]    |  _________________________________________________________________________________________________^
[INFO] [stdout] 64 | |         trace!("Destroying shader module: {:?}", shader_module);
[INFO] [stdout] 65 | |         device.destroy_shader_module(shader_module, allocator);
[INFO] [stdout] 66 | |     }) })
[INFO] [stdout]    | |_____^ ...is captured here...
[INFO] [stdout]    |
[INFO] [stdout] note: ...and is required to live as long as `'static` here
[INFO] [stdout]   --> src/safe_create.rs:61:184
[INFO] [stdout]    |
[INFO] [stdout] 61 | ...AllocationCallbacks>) -> VkResult<VkOwned<ShaderModule, impl Fn(ShaderModule)>> {
[INFO] [stdout]    |                                                            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: to declare that the `impl Trait` captures data from argument `device`, you can add an explicit `'d` lifetime bound
[INFO] [stdout]    |
[INFO] [stdout] 61 | pub fn create_shader_module_safe<'d, D: DeviceV1_0>(device: &'d D, create_info: &ShaderModuleCreateInfo, allocator: Option<&'d AllocationCallbacks>) -> VkResult<VkOwned<ShaderModule, impl Fn(ShaderModule) + 'd>> {
[INFO] [stdout]    |                                                                                                                                                                                                              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0759]: `vk_swapchain` has lifetime `'s` but it needs to satisfy a `'static` lifetime requirement
[INFO] [stdout]   --> src/safe_create.rs:71:85
[INFO] [stdout]    |
[INFO] [stdout] 69 |   pub fn create_swapchain_khr_safe<'s>(vk_swapchain: &'s ash::extensions::Swapchain, create_info: &SwapchainCreateInfoKHR, allocator: Optio...
[INFO] [stdout]    |                                                      ------------------------------ this data with lifetime `'s`...
[INFO] [stdout] 70 |       let unsafe_swapchain = unsafe { vk_swapchain.create_swapchain_khr(&create_info, allocator) };
[INFO] [stdout] 71 |       unsafe_swapchain.map(|unsafe_swapchain| unsafe { VkOwned::new(unsafe_swapchain, move |swapchain| {
[INFO] [stdout]    |  _____________________________________________________________________________________^
[INFO] [stdout] 72 | |         trace!("Destroying swapchain: {:?}", swapchain);
[INFO] [stdout] 73 | |         vk_swapchain.destroy_swapchain_khr(swapchain, allocator);
[INFO] [stdout] 74 | |     }) })
[INFO] [stdout]    | |_____^ ...is captured here...
[INFO] [stdout]    |
[INFO] [stdout] note: ...and is required to live as long as `'static` here
[INFO] [stdout]   --> src/safe_create.rs:69:200
[INFO] [stdout]    |
[INFO] [stdout] 69 | ...AllocationCallbacks>) -> VkResult<VkOwned<SwapchainKHR, impl Fn(SwapchainKHR)>> {
[INFO] [stdout]    |                                                            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: to declare that the `impl Trait` captures data from argument `vk_swapchain`, you can add an explicit `'s` lifetime bound
[INFO] [stdout]    |
[INFO] [stdout] 69 | pub fn create_swapchain_khr_safe<'s>(vk_swapchain: &'s ash::extensions::Swapchain, create_info: &SwapchainCreateInfoKHR, allocator: Option<&'s AllocationCallbacks>) -> VkResult<VkOwned<SwapchainKHR, impl Fn(SwapchainKHR) + 's>> {
[INFO] [stdout]    |                                                                                                                                                                                                                              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0759]: `device` has lifetime `'s` but it needs to satisfy a `'static` lifetime requirement
[INFO] [stdout]   --> src/safe_create.rs:79:88
[INFO] [stdout]    |
[INFO] [stdout] 77 |   pub fn create_image_view_safe<'s, D: DeviceV1_0>(device: &'s D, create_info: &ImageViewCreateInfo, allocator: Option<&'s AllocationCallba...
[INFO] [stdout]    |                                                            ----- this data with lifetime `'s`...
[INFO] [stdout] 78 |       let unsafe_image_view = unsafe { device.create_image_view(create_info, allocator) };
[INFO] [stdout] 79 |       unsafe_image_view.map(|unsafe_image_view| unsafe { VkOwned::new(unsafe_image_view, move |image_view| {
[INFO] [stdout]    |  ________________________________________________________________________________________^
[INFO] [stdout] 80 | |         trace!("Destroying image view: {:?}", image_view);
[INFO] [stdout] 81 | |         device.destroy_image_view(image_view, allocator);
[INFO] [stdout] 82 | |     }) })
[INFO] [stdout]    | |_____^ ...is captured here...
[INFO] [stdout]    |
[INFO] [stdout] note: ...and is required to live as long as `'static` here
[INFO] [stdout]   --> src/safe_create.rs:77:175
[INFO] [stdout]    |
[INFO] [stdout] 77 | ...<&'s AllocationCallbacks>) -> VkResult<VkOwned<ImageView, impl Fn(ImageView)>> {
[INFO] [stdout]    |                                                              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: to declare that the `impl Trait` captures data from argument `device`, you can add an explicit `'s` lifetime bound
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub fn create_image_view_safe<'s, D: DeviceV1_0>(device: &'s D, create_info: &ImageViewCreateInfo, allocator: Option<&'s AllocationCallbacks>) -> VkResult<VkOwned<ImageView, impl Fn(ImageView) + 's>> {
[INFO] [stdout]    |                                                                                                                                                                                                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0759]: `vk` has lifetime `'s` but it needs to satisfy a `'static` lifetime requirement
[INFO] [stdout]   --> src/safe_create.rs:87:79
[INFO] [stdout]    |
[INFO] [stdout] 85 |   pub fn create_window_surface_safe<'s, I: InstanceV1_0>(vk: &'s I, vk_surface: &'s ash::extensions::Surface, window: &'s glfw::Window, all...
[INFO] [stdout]    |                                                              ----- this data with lifetime `'s`...
[INFO] [stdout] 86 |       let unsafe_surface = unsafe { glfw_surface::create_window_surface(vk, window, allocator) };
[INFO] [stdout] 87 |       unsafe_surface.map(|unsafe_surface| unsafe { VkOwned::new(unsafe_surface, move |surface| {
[INFO] [stdout]    |  _______________________________________________________________________________^
[INFO] [stdout] 88 | |         trace!("Destroying surface: {:?}", surface);
[INFO] [stdout] 89 | |         vk_surface.destroy_surface_khr(surface, allocator)
[INFO] [stdout] 90 | |     }) })
[INFO] [stdout]    | |_____^ ...is captured here...
[INFO] [stdout]    |
[INFO] [stdout] note: ...and is required to live as long as `'static` here
[INFO] [stdout]   --> src/safe_create.rs:85:211
[INFO] [stdout]    |
[INFO] [stdout] 85 | ...'s AllocationCallbacks>) -> VkResult<VkOwned<SurfaceKHR, impl Fn(SurfaceKHR)>> {
[INFO] [stdout]    |                                                             ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: to declare that the `impl Trait` captures data from argument `vk`, you can add an explicit `'s` lifetime bound
[INFO] [stdout]    |
[INFO] [stdout] 85 | pub fn create_window_surface_safe<'s, I: InstanceV1_0>(vk: &'s I, vk_surface: &'s ash::extensions::Surface, window: &'s glfw::Window, allocator: Option<&'s AllocationCallbacks>) -> VkResult<VkOwned<SurfaceKHR, impl Fn(SurfaceKHR) + 's>> {
[INFO] [stdout]    |                                                                                                                                                                                                                                       ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0759]: `device` has lifetime `'d` but it needs to satisfy a `'static` lifetime requirement
[INFO] [stdout]   --> src/safe_create.rs:95:76
[INFO] [stdout]    |
[INFO] [stdout] 93 |   pub fn create_pipeline_layout_safe<'d, D: DeviceV1_0>(device: &'d D, create_info: &PipelineLayoutCreateInfo, allocator: Option<&'d Alloca...
[INFO] [stdout]    |                                                                 ----- this data with lifetime `'d`...
[INFO] [stdout] 94 |       let unsafe_layout = unsafe { device.create_pipeline_layout(create_info, allocator) };
[INFO] [stdout] 95 |       unsafe_layout.map(|unsafe_layout| unsafe { VkOwned::new(unsafe_layout, move |layout| {
[INFO] [stdout]    |  ____________________________________________________________________________^
[INFO] [stdout] 96 | |         trace!("Destroying pipeline layout: {:?}", layout);
[INFO] [stdout] 97 | |         device.destroy_pipeline_layout(layout, allocator);
[INFO] [stdout] 98 | |     }) })
[INFO] [stdout]    | |_____^ ...is captured here...
[INFO] [stdout]    |
[INFO] [stdout] note: ...and is required to live as long as `'static` here
[INFO] [stdout]   --> src/safe_create.rs:93:190
[INFO] [stdout]    |
[INFO] [stdout] 93 | ...ocationCallbacks>) -> VkResult<VkOwned<PipelineLayout, impl Fn(PipelineLayout)>> {
[INFO] [stdout]    |                                                           ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: to declare that the `impl Trait` captures data from argument `device`, you can add an explicit `'d` lifetime bound
[INFO] [stdout]    |
[INFO] [stdout] 93 | pub fn create_pipeline_layout_safe<'d, D: DeviceV1_0>(device: &'d D, create_info: &PipelineLayoutCreateInfo, allocator: Option<&'d AllocationCallbacks>) -> VkResult<VkOwned<PipelineLayout, impl Fn(PipelineLayout) + 'd>> {
[INFO] [stdout]    |                                                                                                                                                                                                                      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0759]: `device` has lifetime `'d` but it needs to satisfy a `'static` lifetime requirement
[INFO] [stdout]    --> src/safe_create.rs:103:91
[INFO] [stdout]     |
[INFO] [stdout] 101 |   pub fn create_render_pass_safe<'d, D: DeviceV1_0>(device: &'d D, create_info: &RenderPassCreateInfo, allocator: Option<&'d AllocationCall...
[INFO] [stdout]     |                                                             ----- this data with lifetime `'d`...
[INFO] [stdout] 102 |       let unsafe_render_pass = unsafe { device.create_render_pass(create_info, allocator) };
[INFO] [stdout] 103 |       unsafe_render_pass.map(|unsafe_render_pass| unsafe { VkOwned::new(unsafe_render_pass, move |render_pass| {
[INFO] [stdout]     |  ___________________________________________________________________________________________^
[INFO] [stdout] 104 | |         trace!("Destroying render pass: {:?}", render_pass);
[INFO] [stdout] 105 | |         device.destroy_render_pass(render_pass, allocator);
[INFO] [stdout] 106 | |     }) })
[INFO] [stdout]     | |_____^ ...is captured here...
[INFO] [stdout]     |
[INFO] [stdout] note: ...and is required to live as long as `'static` here
[INFO] [stdout]    --> src/safe_create.rs:101:178
[INFO] [stdout]     |
[INFO] [stdout] 101 | ...'d AllocationCallbacks>) -> VkResult<VkOwned<RenderPass, impl Fn(RenderPass)>> {
[INFO] [stdout]     |                                                             ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: to declare that the `impl Trait` captures data from argument `device`, you can add an explicit `'d` lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 101 | pub fn create_render_pass_safe<'d, D: DeviceV1_0>(device: &'d D, create_info: &RenderPassCreateInfo, allocator: Option<&'d AllocationCallbacks>) -> VkResult<VkOwned<RenderPass, impl Fn(RenderPass) + 'd>> {
[INFO] [stdout]     |                                                                                                                                                                                                      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0759]: `device` has lifetime `'d` but it needs to satisfy a `'static` lifetime requirement
[INFO] [stdout]    --> src/safe_create.rs:110:28
[INFO] [stdout]     |
[INFO] [stdout] 109 |   unsafe fn take_pipeline_ownership<'d, D: DeviceV1_0>(device: &'d D, allocator: Option<&'d AllocationCallbacks>, pipeline: Pipeline) -> Vk...
[INFO] [stdout]     |                                                                ----- this data with lifetime `'d`...
[INFO] [stdout] 110 |       VkOwned::new(pipeline, move |pipeline| {
[INFO] [stdout]     |  ____________________________^
[INFO] [stdout] 111 | |         trace!("Destroying pipeline: {:?}", pipeline);
[INFO] [stdout] 112 | |         device.destroy_pipeline(pipeline, allocator);
[INFO] [stdout] 113 | |     })
[INFO] [stdout]     | |_____^ ...is captured here...
[INFO] [stdout]     |
[INFO] [stdout] note: ...and is required to live as long as `'static` here
[INFO] [stdout]    --> src/safe_create.rs:109:154
[INFO] [stdout]     |
[INFO] [stdout] 109 | ...ationCallbacks>, pipeline: Pipeline) -> VkOwned<Pipeline, impl Fn(Pipeline)> {
[INFO] [stdout]     |                                                              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: to declare that the `impl Trait` captures data from argument `device`, you can add an explicit `'d` lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 109 | unsafe fn take_pipeline_ownership<'d, D: DeviceV1_0>(device: &'d D, allocator: Option<&'d AllocationCallbacks>, pipeline: Pipeline) -> VkOwned<Pipeline, impl Fn(Pipeline) + 'd> {
[INFO] [stdout]     |                                                                                                                                                                            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot specify lifetime arguments explicitly if late bound lifetime parameters are present
[INFO] [stdout]    --> src/safe_create.rs:120:35
[INFO] [stdout]     |
[INFO] [stdout] 120 |         take_pipeline_ownership::<'d, D>(device, allocator, pipeline)
[INFO] [stdout]     |                                   ^^
[INFO] [stdout]     |
[INFO] [stdout] note: the late bound lifetime parameter is introduced here
[INFO] [stdout]    --> src/safe_create.rs:109:35
[INFO] [stdout]     |
[INFO] [stdout] 109 | unsafe fn take_pipeline_ownership<'d, D: DeviceV1_0>(device: &'d D, allocator: Option<&'d AllocationCallbacks>, pipeline: Pipeline) -> Vk...
[INFO] [stdout]     |                                   ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0759]: `create_info` has lifetime `'img` but it needs to satisfy a `'static` lifetime requirement
[INFO] [stdout]    --> src/safe_create.rs:154:91
[INFO] [stdout]     |
[INFO] [stdout] 152 |   pub fn create_framebuffer_safe<'device, 'img, D: DeviceV1_0>(device: &'device D, create_info: FramebufferCreateInfoSafe<'img>, allocator:...
[INFO] [stdout]     |                                                                                                 ------------------------------- this data with lifetime `'img`...
[INFO] [stdout] 153 |       let unsafe_framebuffer = unsafe { device.create_framebuffer(create_info.info_ref(), allocator) };
[INFO] [stdout] 154 |       unsafe_framebuffer.map(|unsafe_framebuffer| unsafe { VkOwned::new(unsafe_framebuffer, move |framebuffer| {
[INFO] [stdout]     |  ___________________________________________________________________________________________^
[INFO] [stdout] 155 | |         trace!("Destroying framebuffer: {:?}", framebuffer);
[INFO] [stdout] 156 | |         trace!("Destroyed framebuffer was created from {:?}", create_info.info_ref());
[INFO] [stdout] 157 | |         device.destroy_framebuffer(framebuffer, allocator);
[INFO] [stdout] 158 | |     }) })
[INFO] [stdout]     | |_____^ ...is captured here...
[INFO] [stdout]     |
[INFO] [stdout] note: ...and is required to live as long as `'static` here
[INFO] [stdout]    --> src/safe_create.rs:152:210
[INFO] [stdout]     |
[INFO] [stdout] 152 | ...e AllocationCallbacks>) -> VkResult<VkOwned<Framebuffer, impl Fn(Framebuffer)>> {
[INFO] [stdout]     |                                                             ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: to declare that the `impl Trait` captures data from argument `create_info`, you can add an explicit `'img` lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 152 | pub fn create_framebuffer_safe<'device, 'img, D: DeviceV1_0>(device: &'device D, create_info: FramebufferCreateInfoSafe<'img>, allocator: Option<&'device AllocationCallbacks>) -> VkResult<VkOwned<Framebuffer, impl Fn(Framebuffer) + 'img>> {
[INFO] [stdout]     |                                                                                                                                                                                                                                       ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0759]: `device` has lifetime `'device` but it needs to satisfy a `'static` lifetime requirement
[INFO] [stdout]    --> src/safe_create.rs:154:91
[INFO] [stdout]     |
[INFO] [stdout] 152 |   pub fn create_framebuffer_safe<'device, 'img, D: DeviceV1_0>(device: &'device D, create_info: FramebufferCreateInfoSafe<'img>, allocator:...
[INFO] [stdout]     |                                                                        ---------- this data with lifetime `'device`...
[INFO] [stdout] 153 |       let unsafe_framebuffer = unsafe { device.create_framebuffer(create_info.info_ref(), allocator) };
[INFO] [stdout] 154 |       unsafe_framebuffer.map(|unsafe_framebuffer| unsafe { VkOwned::new(unsafe_framebuffer, move |framebuffer| {
[INFO] [stdout]     |  ___________________________________________________________________________________________^
[INFO] [stdout] 155 | |         trace!("Destroying framebuffer: {:?}", framebuffer);
[INFO] [stdout] 156 | |         trace!("Destroyed framebuffer was created from {:?}", create_info.info_ref());
[INFO] [stdout] 157 | |         device.destroy_framebuffer(framebuffer, allocator);
[INFO] [stdout] 158 | |     }) })
[INFO] [stdout]     | |_____^ ...is captured here...
[INFO] [stdout]     |
[INFO] [stdout] note: ...and is required to live as long as `'static` here
[INFO] [stdout]    --> src/safe_create.rs:152:210
[INFO] [stdout]     |
[INFO] [stdout] 152 | ...e AllocationCallbacks>) -> VkResult<VkOwned<Framebuffer, impl Fn(Framebuffer)>> {
[INFO] [stdout]     |                                                             ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: to declare that the `impl Trait` captures data from argument `device`, you can add an explicit `'device` lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 152 | pub fn create_framebuffer_safe<'device, 'img, D: DeviceV1_0>(device: &'device D, create_info: FramebufferCreateInfoSafe<'img>, allocator: Option<&'device AllocationCallbacks>) -> VkResult<VkOwned<Framebuffer, impl Fn(Framebuffer) + 'device>> {
[INFO] [stdout]     |                                                                                                                                                                                                                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0759]: `device` has lifetime `'device` but it needs to satisfy a `'static` lifetime requirement
[INFO] [stdout]    --> src/safe_create.rs:163:94
[INFO] [stdout]     |
[INFO] [stdout] 161 |   pub fn create_command_pool_safe<'device, D: DeviceV1_0>(device: &'device D, create_info: &CommandPoolCreateInfo, allocator: Option<&'devi...
[INFO] [stdout]     |                                                                   ---------- this data with lifetime `'device`...
[INFO] [stdout] 162 |       let unsafe_command_pool = unsafe { device.create_command_pool(create_info, allocator) };
[INFO] [stdout] 163 |       unsafe_command_pool.map(|unsafe_command_pool| unsafe { VkOwned::new(unsafe_command_pool, move |command_pool| {
[INFO] [stdout]     |  ______________________________________________________________________________________________^
[INFO] [stdout] 164 | |         trace!("Destroying command pool: {:?}", command_pool);
[INFO] [stdout] 165 | |         device.destroy_command_pool(command_pool, allocator);
[INFO] [stdout] 166 | |     }) })
[INFO] [stdout]     | |_____^ ...is captured here...
[INFO] [stdout]     |
[INFO] [stdout] note: ...and is required to live as long as `'static` here
[INFO] [stdout]    --> src/safe_create.rs:161:196
[INFO] [stdout]     |
[INFO] [stdout] 161 | ...e AllocationCallbacks>) -> VkResult<VkOwned<CommandPool, impl Fn(CommandPool)>> {
[INFO] [stdout]     |                                                             ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: to declare that the `impl Trait` captures data from argument `device`, you can add an explicit `'device` lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 161 | pub fn create_command_pool_safe<'device, D: DeviceV1_0>(device: &'device D, create_info: &CommandPoolCreateInfo, allocator: Option<&'device AllocationCallbacks>) -> VkResult<VkOwned<CommandPool, impl Fn(CommandPool) + 'device>> {
[INFO] [stdout]     |                                                                                                                                                                                                                         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0759]: `device` has lifetime `'device` but it needs to satisfy a `'static` lifetime requirement
[INFO] [stdout]    --> src/safe_create.rs:171:67
[INFO] [stdout]     |
[INFO] [stdout] 169 |   pub fn create_semaphore_safe<'device, D: DeviceV1_0>(device: &'device D, create_info: &SemaphoreCreateInfo, allocator: Option<&'device Al...
[INFO] [stdout]     |                                                                ---------- this data with lifetime `'device`...
[INFO] [stdout] 170 |       let unsafe_sem = unsafe { device.create_semaphore(create_info, allocator) };
[INFO] [stdout] 171 |       unsafe_sem.map(|unsafe_sem| unsafe { VkOwned::new(unsafe_sem, move |sem| {
[INFO] [stdout]     |  ___________________________________________________________________^
[INFO] [stdout] 172 | |         trace!("Destroying semaphore: {:?}", sem);
[INFO] [stdout] 173 | |         device.destroy_semaphore(sem, allocator);
[INFO] [stdout] 174 | |     }) })
[INFO] [stdout]     | |_____^ ...is captured here...
[INFO] [stdout]     |
[INFO] [stdout] note: ...and is required to live as long as `'static` here
[INFO] [stdout]    --> src/safe_create.rs:169:189
[INFO] [stdout]     |
[INFO] [stdout] 169 | ...vice AllocationCallbacks>) -> VkResult<VkOwned<Semaphore, impl Fn(Semaphore)>> {
[INFO] [stdout]     |                                                              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: to declare that the `impl Trait` captures data from argument `device`, you can add an explicit `'device` lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 169 | pub fn create_semaphore_safe<'device, D: DeviceV1_0>(device: &'device D, create_info: &SemaphoreCreateInfo, allocator: Option<&'device AllocationCallbacks>) -> VkResult<VkOwned<Semaphore, impl Fn(Semaphore) + 'device>> {
[INFO] [stdout]     |                                                                                                                                                                                                                ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 12 previous errors; 6 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0759`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `vk-playground`
[INFO] [stderr] 
[INFO] [stderr] To learn more, run the command again with --verbose.
[INFO] running `Command { std: "docker" "inspect" "bf4befbe40086a3223c13fea932c29369e33f1311623ddc3325e837de37cd7ab", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "bf4befbe40086a3223c13fea932c29369e33f1311623ddc3325e837de37cd7ab", kill_on_drop: false }`
[INFO] [stdout] bf4befbe40086a3223c13fea932c29369e33f1311623ddc3325e837de37cd7ab
